package com.lggry.array;

public class ArrayDemo5 {
    public static void main(String[] args) {
        //完成数字华容道的初始化和随机打乱顺序
        start(5);
    }
    public static void start(int n) {
        //1.定义一个二维数组存储数字列表。
        int[][] arr = new int[n][n];

        int count = 1;
        //2.遍历二维数组，给二维数组赋值
        for(int i = 0;i < arr.length;i++){
            for (int j = 0;j < arr[i].length;j++){
                arr[i][j] = count++;
            }
        }

        //3.打乱二维数组中的元素顺序
        for(int i = 0;i < arr.length;i++){
            for (int j = 0;j < arr[i].length;j++){
                //遍历到当前位置：arr[i][j]
                //随机的索引位置处：m(随机的行)p(随机的列)
                int index1 = (int)(Math.random()*arr.length);
                int index2 = (int)(Math.random()*arr.length);

                //定义一个临时变量存储m p位置处的数据
                int temp = arr[index1][index2];
                //把 i j 位置处的数据，赋值给 m p位置
                arr[index1][index2] = arr[i][j];
                //把 m p位置处的数据，赋值给 i j位置
                arr[i][j] = temp;
            }
       }


        printArr(arr);
    }

    public static void printArr(int[][] arr){
        for(int i = 0;i < arr.length;i++){
            for (int j = 0;j<arr[i].length;j++){
                System.out.print(arr[i][j]+"\t");
            }
            System.out.println();
        }
    }
}
